﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BitBox.Framework.KBR.DAL;
using BitBox.Framework.KBR.Model;

namespace BitBox.WinForm.BackOffice
{
    public partial class frmPrincipal : Form
    {
        public frmPrincipal()
        {
            InitializeComponent();            
        }

        public frmPrincipal(string strid)
        {
            InitializeComponent();
            lblId.Text = strid;
            lblId2.Text = strid;
        }
        
        /// <summary>
        /// Método utilizado para fechar o programa quando clicar em ARQUIVO\SAIR
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void sairToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("Deseja mesmo sair do KBR?", "Sair do KBR", MessageBoxButtons.OKCancel);

            switch (result)
            {
                case DialogResult.OK:
                    {
                        Application.Exit();
                        break;
                    }
                case DialogResult.Cancel:
                    {
                        break;
                    }
            }
        }

        /// <summary>
        /// Evento de click do botão "Incluir Perguntas"
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnIncPerg_Click(object sender, EventArgs e)
        {
            try
            {
                System.Threading.Thread newForm = new System.Threading.Thread(OpenForm);
                newForm.Start(0);
            }
            catch { }
        }

        /// <summary>
        /// Evento de click do botão "Alterar/Excluir"
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnEditPerg_Click(object sender, EventArgs e)
        {
            try
            {
                System.Threading.Thread newForm = new System.Threading.Thread(OpenForm);
                newForm.Start(1);
            }
            catch { }
        }

        private void btnUpdate_Click(object sender, EventArgs e)
        {
            try
            {
                UserInfo usrinfo = new UserInfo();
                UserDAL usrDal = new UserDAL();

                if (txtPass1.Text == txtPass2.Text && txtPass1.Text!="")
                {
 
                    usrinfo = usrDal.SelectByName(lblId.Text);
                    usrinfo.USER_PASSWORD = txtPass1.Text;

                    if (usrDal.Update(usrinfo) == 0)
                    {
                        MessageBox.Show("Senha alterada com sucesso");
                    }
                    else
                    {
                        MessageBox.Show("Não foi possível fazer a alteração");
                    }
                }
                else
                {
                    MessageBox.Show("Senhas não conferem");
                }
            }
            catch { MessageBox.Show("Erro no cadastro"); }
        }

        private void btnDelete_Click(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("Deseja mesmo Deletar sua conta?", "Excluir Conta", MessageBoxButtons.OKCancel);

            switch (result)
            {
                case DialogResult.OK:
                    {
                        try
                        {
                            UserInfo usrinfo = new UserInfo();
                            UserDAL usrDal = new UserDAL();

                            usrinfo = usrDal.SelectByName(lblId.Text);
                            usrinfo.USER_PASSWORD = txtPass1.Text;

                            usrDal.Delete(usrinfo.USER_ID);
                            MessageBox.Show("Conta excluída com sucesso");

                        }
                        catch 
                        { 
                            MessageBox.Show("Erro no cadastro"); 
                        }
                        finally
                        {
                            Application.Exit();                            
                        }
                        break;
                    }
                case DialogResult.Cancel:
                    {
                        break;
                    }
            }
        }


        /// <summary>
        /// Método utilizado para abrir o form "frmPerguntas" selecionando pelo tabindex a tab desejada
        /// </summary>
        /// <param name="tabIndex"></param>
        public static void OpenForm(object tabIndex)
        {
            int index = int.Parse(string.Format("{0}", tabIndex));
            Application.Run(new frmPerguntas(index));                        
        }




    }
}
